package com.yanqu.road.entity.activity.seacraft.pirateriot;

import com.yanqu.road.entity.DataObject;
import com.yanqu.road.entity.FieldTypeAnnotation;
import com.yanqu.road.entity.DataStatus;

import java.util.List;
import java.util.Map;

@FieldTypeAnnotation(tableName = "t_u_seacraft_pirate_riot_user")
public class SeacraftPirateRiotUserData extends DataObject {

    @FieldTypeAnnotation(desc = "活动ID", select = true, update = true)
    private int activityId;
    @FieldTypeAnnotation(desc = "玩家ID", select = true, update = true)
    private long userId;
    @FieldTypeAnnotation(desc = "体力")
    private int energy;
    @FieldTypeAnnotation(desc = "体力恢复时间")
    private long lastRecTime;
    @FieldTypeAnnotation(desc = "怪物图鉴")
    private List<Integer> monsterManual;
    @FieldTypeAnnotation(desc = "怪物图鉴领奖")
    private List<Integer> rewardMonster;
    @FieldTypeAnnotation(desc = "积分")
    private long score;
    @FieldTypeAnnotation(desc = "战备等级")
    private int equipLevel;
    @FieldTypeAnnotation(desc = "关卡内门客数据  （职业，数据）")
    private Map<Integer, SeacraftPirateRiotBattlePatrons> battlePatronsMap;

    // 关卡相关
    @FieldTypeAnnotation(desc = "盘面")
    private int[][] blockList;
    @FieldTypeAnnotation(desc = "关卡ID")
    private int chapterId;
    @FieldTypeAnnotation(desc = "关卡状态")
    private int chapterStatus; // 枚举：ePirateRiotChapterStatus
    @FieldTypeAnnotation(desc = "波次ID")
    private int sectionId;
    @FieldTypeAnnotation(desc = "关卡内怪物数据")
    private List<SeacraftPirateRiotMonsterData> monsterList;
    @FieldTypeAnnotation(desc = "盘面引导下标")
    private int guideIndex;

    // 不入库
    private long lastTipsTime;

    // =========================================================================================

    public int getActivityId() {
        return activityId;
    }

    public void setActivityId(int activityId) {
        if (this.activityId != activityId) {
            this.activityId = activityId;
            setOp(DataStatus.Update);
        }
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        if (this.userId != userId) {
            this.userId = userId;
            setOp(DataStatus.Update);
        }
    }

    public int getEnergy() {
        return energy;
    }

    public void setEnergy(int energy) {
        if (this.energy != energy) {
            this.energy = energy;
            setOp(DataStatus.Update);
        }
    }

    public long getLastRecTime() {
        return lastRecTime;
    }

    public void setLastRecTime(long lastRecTime) {
        if (this.lastRecTime != lastRecTime) {
            this.lastRecTime = lastRecTime;
            setOp(DataStatus.Update);
        }
    }

    public List<Integer> getMonsterManual() {
        return monsterManual;
    }

    public void setMonsterManual(List<Integer> monsterManual) {
        if (null == monsterManual) {
            return;
        }
        this.monsterManual = monsterManual;
        setOp(DataStatus.Update);
    }

    public List<Integer> getRewardMonster() {
        return rewardMonster;
    }

    public long getScore() {
        return score;
    }

    public void setRewardMonster(List<Integer> rewardMonster) {
        if (null == rewardMonster) {
            return;
        }
        this.rewardMonster = rewardMonster;
        setOp(DataStatus.Update);
    }

    public void setScore(long score) {
        if (this.score != score) {
            this.score = score;
            setOp(DataStatus.Update);
        }
    }

    public Map<Integer, SeacraftPirateRiotBattlePatrons> getBattlePatronsMap() {
        return battlePatronsMap;
    }

    public void setBattlePatronsMap(Map<Integer, SeacraftPirateRiotBattlePatrons> battlePatronsMap) {
        if (null == battlePatronsMap) {
            return;
        }
        this.battlePatronsMap = battlePatronsMap;
        setOp(DataStatus.Update);
    }

    public int[][] getBlockList() {
        return blockList;
    }

    public void setBlockList(int[][] blockList) {
        if (null == blockList) {
            return;
        }
        this.blockList = blockList;
        setOp(DataStatus.Update);
    }

    public int getChapterId() {
        return chapterId;
    }

    public void setChapterId(int chapterId) {
        if (this.chapterId != chapterId) {
            this.chapterId = chapterId;
            setOp(DataStatus.Update);
        }
    }

    public int getChapterStatus() {
        return chapterStatus;
    }

    public void setChapterStatus(int chapterStatus) {
        if (this.chapterStatus != chapterStatus) {
            this.chapterStatus = chapterStatus;
            setOp(DataStatus.Update);
        }
    }

    public int getSectionId() {
        return sectionId;
    }

    public void setSectionId(int sectionId) {
        if (this.sectionId != sectionId) {
            this.sectionId = sectionId;
            setOp(DataStatus.Update);
        }
    }

    public List<SeacraftPirateRiotMonsterData> getMonsterList() {
        return monsterList;
    }

    public void setMonsterList(List<SeacraftPirateRiotMonsterData> monsterList) {
        if (null == monsterList) {
            return;
        }
        this.monsterList = monsterList;
        setOp(DataStatus.Update);
    }

    public int getGuideIndex() {
        return guideIndex;
    }

    public void setGuideIndex(int guideIndex) {
        if (this.guideIndex != guideIndex) {
            this.guideIndex = guideIndex;
            setOp(DataStatus.Update);
        }
    }

    public long getLastTipsTime() {
        return lastTipsTime;
    }

    public void setLastTipsTime(long lastTipsTime) {
        this.lastTipsTime = lastTipsTime;
    }

    public int getEquipLevel() {
        return equipLevel;
    }

    public void setEquipLevel(int equipLevel) {
        if (this.equipLevel != equipLevel) {
            this.equipLevel = equipLevel;
            setOp(DataStatus.Update);
        }
    }
}
